/**************************
 * \if English
 * @Date:2018.09.10
 * @Author:
 * @Brief:
 * @Detail:
 * @Editor:
 * @Brief:
 * \else
 *
 * @创建日期：2018年9月10日
 * @作者：hualei
 * @大概功能：TCP_READ 指令
**************************/
#ifndef TCPREADINSTRUCTION_H
#define TCPREADINSTRUCTION_H

#include <QString>
#include "instructionEnum.h"
#include <QVector>

/**
 * @brief The TcpReadInstruction class      从数据流中获取或写入TCP_READ指令参数
 */
class TcpReadInstruction
{
public:
    /**
     * @brief TcpReadInstruction            构造函数
     */
    TcpReadInstruction();

    /**
     * @brief operator <<   向数据流中写入指令参数
     * @param out           写入数据流
     * @param myVector      指令
     * @return
     */
    friend QDataStream &operator << (QDataStream& out, TcpReadInstruction& myVector);

    /**
     * @brief operator >>       向数据流中读取指令参数
     * @param in                读取数据流
     * @param myVector          指令
     * @return
     */
    friend QDataStream &operator >> (QDataStream& in, TcpReadInstruction& myVector);

public:
    /**
     * @brief instructionType           指令类型
     */
    INSTRUCTION_TYPE instructionType;

    /**
     * @brief tcpReadRegBeginAddress    接收数据寄存器起始地址
     */
    int tcpReadRegBeginAddress;

    /**
     * @brief tcpReadRegLength          数据长度
     */
    int tcpReadRegLength;

    /**
     * @brief tcpReadBusType            TCP_READ 接收总线类型
     */
    EM_TCP_READ_BUS_TYPE tcpReadBusType;

    /**
     * @brief tcpReadIPVec              发送数据客户端IP
     */
    QVector <int> tcpReadClientIPVec;

    /**
     * @brief tcpReadServerIPVec        发送数据服务器IP
     */
    QVector <int> tcpReadServerIPVec;

    /**
     * @brief tcpReadPort               接收数据端端口号
     */
    int tcpReadPort;

    /**
     * @brief jmpLBValue                跳转标签号
     */
    int jmpLBValue;

    /**
     * @brief noteStr                   注释
     */
    QString noteStr;
};

#endif // TCPREADINSTRUCTION_H
